Skip to content

Update subtree/library to 2025-04-03 #315

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 8 commits into from
Apr 4, 2025

Conversation

github-actions[bot]
Copy link

@github-actions github-actions bot commented Apr 4, 2025

This is an automated PR to update the subtree/library branch to the changes from 2025-03-18 (rust-lang/rust@43a2e9d) to 2025-04-03 (rust-lang/rust@d5b4c2e), inclusive.
Review this PR as usual, but do not merge this PR using the GitHub web interface. Instead, once it is approved, use git push to literally push the changes to subtree/library without any rebase or merge.

lcnr and others added 8 commits March 21, 2025 09:35
remove `feature(inline_const_pat)`

Summarizing https://rust-lang.zulipchat.com/#narrow/channel/144729-t-types/topic/remove.20feature.28inline_const_pat.29.20and.20shared.20borrowck.

With rust-lang/types-team#129 we will start to borrowck items together with their typeck parent. This is necessary to correctly support opaque types, blocking the new solver and TAIT/ATPIT stabilization with the old one. This means that we cannot really support `inline_const_pat` as they are implemented right now:

- we want to typeck inline consts together with their parent body to allow inference to flow both ways and to allow the const to refer to local regions of its parent.This means we also need to borrowck the inline const together with its parent as that's necessary to properly support opaque types
- we want the inline const pattern to participate in exhaustiveness checking
- to participate in exhaustiveness checking we need to evaluate it, which requires borrowck, which now relies on borrowck of the typeck root, which ends up checking exhaustiveness again. **This is a query cycle**.

There are 4 possible ways to handle this:
- stop typechecking inline const patterns together with their parent
  - causes inline const patterns to be different than inline const exprs
  - prevents bidirectional inference, we need to either fail to compile `if let const { 1 } = 1u32` or `if let const { 1u32 } = 1`
  - region inference for inline consts will be harder, it feels non-trivial to support inline consts referencing local regions from the parent fn
- inline consts no longer participate in exhaustiveness checking. Treat them like `pat if pat == const { .. }`  instead. We then only evaluate them after borrowck
  - difference between `const { 1 }`  and `const FOO: usize = 1; match x { FOO => () }`. This is confusing
  - do they carry their weight if they are now just equivalent to using an if-guard
- delay exhaustiveness checking until after borrowck
  - should be possible in theory, but is a quite involved change and may have some unexpected challenges
- remove this feature for now

I believe we should either delay exhaustiveness checking or remove the feature entirely. As moving exhaustiveness checking to after borrow checking is quite complex I think the right course of action is to fully remove the feature for now and to add it again once/if we've got that implementation figured out.

`const { .. }`-expressions remain stable. These seem to have been the main motivation for rust-lang/rfcs#2920.

r? types

cc `@rust-lang/types` `@rust-lang/lang` rust-lang#76001
    Updating anyhow v1.0.95 -> v1.0.97
    Updating basic-toml v0.1.9 -> v0.1.10
    Updating bitflags v2.8.0 -> v2.9.0
    Updating blake3 v1.5.5 -> v1.8.0
    Updating bumpalo v3.16.0 -> v3.17.0
    Removing byteorder v1.5.0
    Updating bytes v1.9.0 -> v1.10.1
    Updating cargo_metadata v0.19.1 -> v0.19.2
    Updating chrono v0.4.39 -> v0.4.40
    Updating chrono-tz v0.10.1 -> v0.10.3
    Updating chrono-tz-build v0.4.0 -> v0.4.1
    Updating clap v4.5.26 -> v4.5.35
    Updating clap_builder v4.5.26 -> v4.5.35
    Updating clap_derive v4.5.24 -> v4.5.32
    Updating console v0.15.10 -> v0.15.11
    Updating cpufeatures v0.2.16 -> v0.2.17
    Updating curl-sys v0.4.78+curl-8.11.0 -> v0.4.80+curl-8.12.1
    Updating darling v0.20.10 -> v0.20.11
    Updating darling_core v0.20.10 -> v0.20.11
    Updating darling_macro v0.20.10 -> v0.20.11
    Updating deranged v0.3.11 -> v0.4.0
    Updating dissimilar v1.0.9 -> v1.0.10
    Updating either v1.13.0 -> v1.15.0
    Updating elsa v1.11.0 -> v1.11.2
    Updating env_logger v0.11.6 -> v0.11.7
    Updating equivalent v1.0.1 -> v1.0.2
    Updating flate2 v1.0.35 -> v1.1.0
    Updating foldhash v0.1.4 -> v0.1.5
    Updating getrandom v0.3.1 -> v0.3.2
    Updating globset v0.4.15 -> v0.4.16
 Downgrading html5ever v0.29.2 -> v0.29.1 (available: v0.30.0)
    Updating humantime v2.1.0 -> v2.2.0
    Updating iana-time-zone v0.1.61 -> v0.1.63
    Updating icu_list_data v1.5.0 -> v1.5.1
    Updating icu_locid_transform_data v1.5.0 -> v1.5.1
    Updating icu_normalizer_data v1.5.0 -> v1.5.1
    Updating icu_properties_data v1.5.0 -> v1.5.1
    Updating indexmap v2.7.0 -> v2.8.0
    Updating indicatif v0.17.9 -> v0.17.11
    Updating inout v0.1.3 -> v0.1.4
    Updating itoa v1.0.14 -> v1.0.15
      Adding jiff v0.2.5
      Adding jiff-static v0.2.5
    Updating jobserver v0.1.32 -> v0.1.33
      Adding leb128fmt v0.1.0
    Updating lexopt v0.3.0 -> v0.3.1
    Updating libc v0.2.169 -> v0.2.171
    Updating libz-sys v1.1.21 -> v1.1.22
    Updating linux-raw-sys v0.4.15 -> v0.9.3
    Updating litemap v0.7.4 -> v0.7.5
    Updating log v0.4.25 -> v0.4.27
 Downgrading markup5ever v0.15.0 -> v0.14.1
    Updating miniz_oxide v0.8.3 -> v0.8.5
    Updating once_cell v1.20.2 -> v1.21.3
    Updating openssl-probe v0.1.5 -> v0.1.6
    Updating openssl-sys v0.9.104 -> v0.9.106
    Updating pest v2.7.15 -> v2.8.0
    Updating pest_derive v2.7.15 -> v2.8.0
    Updating pest_generator v2.7.15 -> v2.8.0
    Updating pest_meta v2.7.15 -> v2.8.0
    Updating pkg-config v0.3.31 -> v0.3.32
    Updating portable-atomic v1.10.0 -> v1.11.0
      Adding portable-atomic-util v0.2.4
    Updating ppv-lite86 v0.2.20 -> v0.2.21
    Updating proc-macro2 v1.0.93 -> v1.0.94
    Updating quote v1.0.38 -> v1.0.40
      Adding r-efi v5.2.0
    Updating rand_core v0.9.0 -> v0.9.3
    Updating redox_syscall v0.5.8 -> v0.5.10
    Updating rustc-stable-hash v0.1.1 -> v0.1.2
    Updating rustc_tools_util v0.4.0 -> v0.4.2
    Updating rustix v0.38.43 -> v1.0.5
    Updating rustversion v1.0.19 -> v1.0.20
    Updating ryu v1.0.18 -> v1.0.20
    Updating semver v1.0.24 -> v1.0.26
    Updating serde v1.0.217 -> v1.0.219
    Updating serde_derive v1.0.217 -> v1.0.219
    Updating serde_json v1.0.135 -> v1.0.140
    Updating similar v2.6.0 -> v2.7.0
    Updating smallvec v1.13.2 -> v1.14.0
    Updating socket2 v0.5.8 -> v0.5.9
    Updating stacker v0.1.18 -> v0.1.20
    Updating string_cache v0.8.8 -> v0.8.9
    Updating syn v2.0.96 -> v2.0.100
    Updating tar v0.4.43 -> v0.4.44
    Updating tempfile v3.15.0 -> v3.19.1
    Updating thin-vec v0.2.13 -> v0.2.14
    Updating thiserror v2.0.11 -> v2.0.12
    Updating thiserror-impl v2.0.11 -> v2.0.12
    Updating time v0.3.37 -> v0.3.41
    Updating time-core v0.1.2 -> v0.1.4
    Updating time-macros v0.2.19 -> v0.2.22
    Updating tinyvec v1.8.1 -> v1.9.0
    Updating tokio v1.43.0 -> v1.44.1
    Updating typenum v1.17.0 -> v1.18.0
    Updating unicode-ident v1.0.14 -> v1.0.18
    Updating uuid v1.12.0 -> v1.16.0
    Updating wasi v0.13.3+wasi-0.2.2 -> v0.14.2+wasi-0.2.4
    Removing wasm-encoder v0.219.1
    Removing wasm-encoder v0.223.0
      Adding wasm-encoder v0.219.2 (available: v0.228.0)
      Adding wasm-encoder v0.223.1
      Adding wasm-encoder v0.228.0
    Updating wasm-metadata v0.223.0 -> v0.223.1
    Removing wasmparser v0.219.1
    Removing wasmparser v0.222.0
    Removing wasmparser v0.223.0
      Adding wasmparser v0.219.2 (available: v0.228.0)
      Adding wasmparser v0.222.1
      Adding wasmparser v0.223.1
      Adding wasmparser v0.228.0
    Updating wast v223.0.0 -> v228.0.0
    Updating wat v1.223.0 -> v1.228.0
    Updating windows-core v0.52.0 -> v0.61.0
      Adding windows-implement v0.60.0
    Updating windows-interface v0.59.0 -> v0.59.1
      Adding windows-link v0.1.1
    Updating windows-result v0.3.0 -> v0.3.2
    Removing windows-strings v0.3.0
      Adding windows-strings v0.3.1
      Adding windows-strings v0.4.0
    Updating wit-bindgen-rt v0.33.0 -> v0.39.0
    Updating wit-component v0.223.0 -> v0.223.1
    Updating wit-parser v0.223.0 -> v0.223.1
    Updating xattr v1.4.0 -> v1.5.0
    Removing zerocopy v0.7.35
    Removing zerocopy v0.8.14
      Adding zerocopy v0.8.24
    Removing zerocopy-derive v0.7.35
    Removing zerocopy-derive v0.8.14
      Adding zerocopy-derive v0.8.24
    Updating zerofrom v0.1.5 -> v0.1.6
    Updating zerofrom-derive v0.1.5 -> v0.1.6

library dependencies
    Updating dlmalloc v0.2.7 -> v0.2.8
    Updating miniz_oxide v0.8.3 -> v0.8.5
    Updating proc-macro2 v1.0.93 -> v1.0.94
    Updating quote v1.0.38 -> v1.0.40
    Updating rand_core v0.9.0 -> v0.9.3
    Updating syn v2.0.98 -> v2.0.100
    Updating unicode-ident v1.0.16 -> v1.0.18
    Updating zerocopy v0.8.17 -> v0.8.24
    Updating zerocopy-derive v0.8.17 -> v0.8.24

rustbook dependencies
    Updating anyhow v1.0.95 -> v1.0.97
    Updating bitflags v2.8.0 -> v2.9.0
    Removing byteorder v1.5.0
    Updating cc v1.2.10 -> v1.2.17
    Updating chrono v0.4.39 -> v0.4.40
    Updating clap v4.5.27 -> v4.5.32
    Updating clap_builder v4.5.27 -> v4.5.32
    Updating clap_complete v4.5.43 -> v4.5.47
    Updating clap_derive v4.5.24 -> v4.5.32
    Updating env_logger v0.11.6 -> v0.11.7
    Updating equivalent v1.0.1 -> v1.0.2
    Updating flate2 v1.0.35 -> v1.1.0
    Updating getrandom v0.2.15 -> v0.3.2
    Updating handlebars v6.3.0 -> v6.3.2
    Removing humantime v2.1.0
    Updating indexmap v2.7.1 -> v2.8.0
    Updating itoa v1.0.14 -> v1.0.15
      Adding jiff v0.2.5
      Adding jiff-static v0.2.5
    Updating libc v0.2.169 -> v0.2.171
    Updating linux-raw-sys v0.4.15 -> v0.9.3
    Updating litemap v0.7.4 -> v0.7.5
    Updating log v0.4.25 -> v0.4.26
    Updating mdbook-i18n-helpers v0.3.5 -> v0.3.6
    Updating miniz_oxide v0.8.3 -> v0.8.5
    Updating once_cell v1.20.2 -> v1.21.1
    Removing phf_generator v0.10.0
    Removing phf_shared v0.10.0
    Updating pkg-config v0.3.31 -> v0.3.32
      Adding portable-atomic v1.11.0
      Adding portable-atomic-util v0.2.4
    Removing ppv-lite86 v0.2.20
    Updating proc-macro2 v1.0.93 -> v1.0.94
    Removing pulldown-cmark v0.11.3
    Updating pulldown-cmark-to-cmark v15.0.1 -> v20.0.1
    Updating quote v1.0.38 -> v1.0.40
      Adding r-efi v5.2.0
    Removing rand_chacha v0.3.1
    Updating redox_syscall v0.5.8 -> v0.5.10
    Updating rustix v0.38.44 -> v1.0.3
    Updating rustversion v1.0.19 -> v1.0.20
    Updating ryu v1.0.19 -> v1.0.20
    Updating semver v1.0.25 -> v1.0.26
    Updating serde v1.0.217 -> v1.0.219
    Updating serde_derive v1.0.217 -> v1.0.219
    Updating serde_json v1.0.138 -> v1.0.140
    Removing siphasher v0.3.11
    Updating smallvec v1.13.2 -> v1.14.0
    Updating string_cache v0.8.7 -> v0.8.8
    Updating string_cache_codegen v0.5.2 -> v0.5.4
    Updating syn v2.0.96 -> v2.0.100
    Updating tempfile v3.15.0 -> v3.19.1
    Updating terminal_size v0.4.1 -> v0.4.2
    Updating textwrap v0.16.1 -> v0.16.2
    Updating thiserror v2.0.11 -> v2.0.12
    Updating thiserror-impl v2.0.11 -> v2.0.12
    Updating toml v0.8.19 -> v0.8.20
    Updating toml_edit v0.22.22 -> v0.22.24
    Updating typenum v1.17.0 -> v1.18.0
    Updating unicode-ident v1.0.16 -> v1.0.18
    Updating wasi v0.11.0+wasi-snapshot-preview1 -> v0.14.2+wasi-0.2.4
      Adding windows-link v0.1.1
    Updating winnow v0.6.25 -> v0.7.4
      Adding wit-bindgen-rt v0.39.0
    Removing zerocopy v0.7.35
    Removing zerocopy-derive v0.7.35
    Updating zerofrom v0.1.5 -> v0.1.6
    Updating zerofrom-derive v0.1.5 -> v0.1.6
…acrum

Update dependencies

rust-lang#136077 needs manual tweaking
```
    compiler and tools dependencies
        Updating anyhow v1.0.95 -> v1.0.97
        Updating basic-toml v0.1.9 -> v0.1.10
        Updating bitflags v2.8.0 -> v2.9.0
        Updating blake3 v1.5.5 -> v1.8.0
        Updating bumpalo v3.16.0 -> v3.17.0
        Removing byteorder v1.5.0
        Updating bytes v1.9.0 -> v1.10.1
        Updating cargo_metadata v0.19.1 -> v0.19.2
        Updating chrono v0.4.39 -> v0.4.40
        Updating chrono-tz v0.10.1 -> v0.10.3
        Updating chrono-tz-build v0.4.0 -> v0.4.1
        Updating clap v4.5.26 -> v4.5.35
        Updating clap_builder v4.5.26 -> v4.5.35
        Updating clap_derive v4.5.24 -> v4.5.35
        Updating console v0.15.10 -> v0.15.11
        Updating cpufeatures v0.2.16 -> v0.2.17
        Updating curl-sys v0.4.78+curl-8.11.0 -> v0.4.80+curl-8.12.1
        Updating darling v0.20.10 -> v0.20.11
        Updating darling_core v0.20.10 -> v0.20.11
        Updating darling_macro v0.20.10 -> v0.20.11
        Updating deranged v0.3.11 -> v0.4.1
        Updating dissimilar v1.0.9 -> v1.0.10
        Updating either v1.13.0 -> v1.15.0
        Updating elsa v1.11.0 -> v1.11.2
        Updating env_logger v0.11.6 -> v0.11.7
        Updating equivalent v1.0.1 -> v1.0.2
        Updating flate2 v1.0.35 -> v1.1.0
        Updating foldhash v0.1.4 -> v0.1.5
        Updating getrandom v0.3.1 -> v0.3.2
        Updating globset v0.4.15 -> v0.4.16
     Downgrading html5ever v0.29.2 -> v0.29.1 (available: v0.30.0)
        Updating humantime v2.1.0 -> v2.2.0
        Updating icu_list_data v1.5.0 -> v1.5.1
        Updating icu_locid_transform_data v1.5.0 -> v1.5.1
        Updating icu_normalizer_data v1.5.0 -> v1.5.1
        Updating icu_properties_data v1.5.0 -> v1.5.1
        Updating indexmap v2.7.0 -> v2.8.0
        Updating indicatif v0.17.9 -> v0.17.11
        Updating inout v0.1.3 -> v0.1.4
        Updating itoa v1.0.14 -> v1.0.15
          Adding jiff v0.2.5
          Adding jiff-static v0.2.5
        Updating jobserver v0.1.32 -> v0.1.33
        Updating lexopt v0.3.0 -> v0.3.1
          Adding leb128fmt v0.1.0
        Updating libc v0.2.169 -> v0.2.171
        Updating libz-sys v1.1.21 -> v1.1.22
        Updating linux-raw-sys v0.4.15 -> v0.9.3
        Updating litemap v0.7.4 -> v0.7.5
        Updating log v0.4.25 -> v0.4.27
     Downgrading markup5ever v0.15.0 -> v0.14.1
        Updating miniz_oxide v0.8.3 -> v0.8.5
        Updating once_cell v1.20.2 -> v1.21.3
        Updating openssl-probe v0.1.5 -> v0.1.6
        Updating openssl-sys v0.9.104 -> v0.9.106
        Updating pest v2.7.15 -> v2.8.0
        Updating pest_derive v2.7.15 -> v2.8.0
        Updating pest_generator v2.7.15 -> v2.8.0
        Updating pest_meta v2.7.15 -> v2.8.0
        Updating pkg-config v0.3.31 -> v0.3.32
        Updating portable-atomic v1.10.0 -> v1.11.0
          Adding portable-atomic-util v0.2.4
        Updating ppv-lite86 v0.2.20 -> v0.2.21
        Updating proc-macro2 v1.0.93 -> v1.0.94
        Updating quote v1.0.38 -> v1.0.40
          Adding r-efi v5.2.0
        Updating rand_core v0.9.0 -> v0.9.3
        Updating redox_syscall v0.5.8 -> v0.5.10
        Updating rustc-stable-hash v0.1.1 -> v0.1.2
        Updating rustc_tools_util v0.4.0 -> v0.4.2
        Updating rustix v0.38.43 -> v1.0.5
        Updating rustversion v1.0.19 -> v1.0.20
        Updating ryu v1.0.18 -> v1.0.20
        Updating semver v1.0.24 -> v1.0.26
        Updating serde v1.0.217 -> v1.0.219
        Updating serde_derive v1.0.217 -> v1.0.219
        Updating serde_json v1.0.135 -> v1.0.140
        Updating similar v2.6.0 -> v2.7.0
        Updating smallvec v1.13.2 -> v1.14.0
        Updating socket2 v0.5.8 -> v0.5.9
        Updating stacker v0.1.18 -> v0.1.20
        Updating string_cache v0.8.8 -> v0.8.9
        Updating syn v2.0.96 -> v2.0.100
        Updating tar v0.4.43 -> v0.4.44
        Updating tempfile v3.15.0 -> v3.19.1
        Updating thin-vec v0.2.13 -> v0.2.14
        Updating thiserror v2.0.11 -> v2.0.12
        Updating thiserror-impl v2.0.11 -> v2.0.12
        Updating time v0.3.37 -> v0.3.41
        Updating time-core v0.1.2 -> v0.1.4
        Updating time-macros v0.2.19 -> v0.2.22
        Updating tinyvec v1.8.1 -> v1.9.0
        Updating tokio v1.43.0 -> v1.44.1
        Updating typenum v1.17.0 -> v1.18.0
        Updating unicode-ident v1.0.14 -> v1.0.18
        Updating uuid v1.12.0 -> v1.16.0
        Updating wasi v0.13.3+wasi-0.2.2 -> v0.14.2+wasi-0.2.4
        Removing wasm-encoder v0.219.1
        Removing wasm-encoder v0.223.0
          Adding wasm-encoder v0.219.2 (available: v0.227.1)
          Adding wasm-encoder v0.223.1
          Adding wasm-encoder v0.228.0
        Updating wasm-metadata v0.223.0 -> v0.223.1
        Removing wasmparser v0.219.1
        Removing wasmparser v0.222.0
        Removing wasmparser v0.223.0
          Adding wasmparser v0.219.2 (available: v0.227.1)
          Adding wasmparser v0.222.1
          Adding wasmparser v0.223.1
          Adding wasmparser v0.228.0
        Updating wast v223.0.0 -> v228.0.0
        Updating wat v1.223.0 -> v1.228.0
        Updating windows-core v0.52.0 -> v0.61.0
          Adding windows-implement v0.60.0
        Updating windows-interface v0.59.0 -> v0.59.1
          Adding windows-link v0.1.1
        Updating windows-result v0.3.0 -> v0.3.2
        Updating windows-strings v0.3.0 -> v0.3.1
          Adding windows-strings v0.4.0
        Updating wit-bindgen-rt v0.33.0 -> v0.39.0
        Updating wit-component v0.223.0 -> v0.223.1
        Updating wit-parser v0.223.0 -> v0.223.1
        Updating xattr v1.4.0 -> v1.5.0
        Updating zerocopy v0.8.14 -> v0.8.24
        Updating zerocopy-derive v0.8.14 -> v0.8.24
        Updating zerofrom v0.1.5 -> v0.1.6
        Updating zerofrom-derive v0.1.5 -> v0.1.6
```
Add `opt-level = "s"` for more std symbolication crates

This reduces the size of a hello world binary built by stage 1 in release by a few kilobytes
@tautschnig tautschnig merged commit 408585e into subtree/library Apr 4, 2025
@tautschnig tautschnig deleted the update-subtree/library branch April 4, 2025 18:35
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

6 participants